home *** CD-ROM | disk | FTP | other *** search
/ Spaceviews 2 / Spaceviews 2.iso / pc / for_pc / pixsetup.ms_ < prev    next >
Text File  |  1995-01-05  |  24KB  |  853 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit PixFolio
  3. '**************************************************************************
  4.  
  5. '' Revised Jan 4 DHG
  6.  
  7.  
  8.  
  9. ''$DEFINE DEBUG  ''Define for script development/debugging
  10.  
  11. '$INCLUDE 'setupapi.inc'
  12. '$INCLUDE 'msdetect.inc'
  13. '$INCLUDE 'mscuistf.inc'
  14.  
  15. ''Dialog ID's
  16. CONST WELCOME       = 100
  17. CONST ASKQUIT       = 200
  18. CONST DESTPATH      = 300
  19. CONST EXITFAILURE   = 400
  20. CONST EXITQUIT      = 600
  21. CONST EXITSUCCESS   = 700
  22. CONST EXITREGISTERED= 750
  23. CONST OPTIONS       = 800
  24. CONST APPHELP       = 900
  25. CONST CUSTHELP      = 910
  26. CONST REGHELP       = 920
  27. CONST CUSTINST      = 6200
  28. CONST TOOBIG        = 6300
  29. CONST NOAVI         = 6350
  30. CONST NOAPP         = 6360
  31. CONST BADPATH       = 6400
  32. CONST CDGETNAMEORG  = 7500
  33. CONST MODELESS      = 5000
  34. CONST QUITWIN       = 6500
  35.  
  36. ''Bitmap ID
  37. CONST LOGO = 1
  38.  
  39. ''File Types
  40. CONST APPFILES     = 1
  41. CONST OPTFILES1    = 2
  42. CONST OPTFILES2    = 3
  43. CONST OPTFILES3    = 4
  44. CONST SYMFILES     = 5
  45.  
  46. '' Catalog Install
  47.  
  48. GLOBAL INPATH$
  49. GLOBAL FLAGS%
  50.  
  51.  
  52. GLOBAL DEST$        ''Default destination directory.
  53. GLOBAL WINDRIVE$    ''Windows drive letter.
  54. GLOBAL OPTCUR$      ''Option selection from option dialog.
  55. GLOBAL CUIDLL$      ''Custom user interface DLL
  56. GLOBAL szTempDir$   ''Working directory
  57. GLOBAL SysDir$      ''Windows System Directory
  58. GLOBAL ini$         ''INI file path
  59. GLOBAL NOPT$
  60.  
  61. GLOBAL OPT1OPT$     ''Option selection from OptFiles1 option dialog.
  62. GLOBAL OPT2OPT$     ''Option selection from OptFiles2 option dialog.
  63. GLOBAL OPT3OPT$
  64. GLOBAL SYMOPT$      ''Option selection for symbol files.
  65.  
  66. ''CustInst list symbol names
  67. GLOBAL APPNEEDS$    ''Option list costs per drive
  68. GLOBAL OPT1NEEDS$
  69. GLOBAL OPT2NEEDS$
  70. GLOBAL OPT3NEEDS$   ''Multimedia files
  71. GLOBAL SYMNEEDS$
  72. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  73. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  74.  
  75.  
  76. ''Dialog list symbol names
  77. GLOBAL CHECKSTATES$
  78. GLOBAL STATUSTEXT$
  79. GLOBAL DRIVETEXT$
  80.  
  81.  
  82. DECLARE SUB AddOptFilesToCopyList (ftype%)
  83. DECLARE SUB RecalcOptFiles (ftype%)
  84. DECLARE SUB RecalcPath
  85. DECLARE SUB SetDriveStatus
  86. DECLARE SUB Install
  87. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  88.  
  89.  
  90. INIT:
  91.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  92.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  93.  
  94.     SetBitmap CUIDLL$, LOGO
  95.     SetTitle "PixFolio Setup"
  96.     szTempDir$ = GetSymbolValue("STF_CWDDIR")
  97.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  98.     IF szInf$ = "" THEN
  99.         szInf$ = GetSymbolValue("STF_CWDDIR") + "PIXSETUP.INF"
  100.     END IF
  101.     ReadInfFile szInf$
  102. ''    NOPT$="1"
  103.  
  104.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  105. ''    DEST$ = WINDRIVE$ + ":\PIXFOLIO"
  106.     DEST$ = "......................................................................."
  107.     GetPixDir DEST$
  108.     if DEST$ = "" THEN
  109.         DEST$ = WINDRIVE$ + ":\PIXFOLIO"
  110.     END IF
  111.     ini$ = MakePath(GetWindowsDir, "WIN.INI")
  112.  
  113.     ''CustInst list symbols
  114.     CHECKSTATES$ = "CheckItemsState"
  115.     STATUSTEXT$  = "StatusItemsText"
  116.     DRIVETEXT$   = "DriveStatusText"
  117. '   FOR i% = 1 TO 3 STEP 1
  118.         AddListItem CHECKSTATES$, "ON"  '' Main program files
  119.         AddListItem CHECKSTATES$, "OFF" '' Photo CD
  120.         AddListItem CHECKSTATES$, "OFF" '' VFW
  121.         AddListItem CHECKSTATES$, "OFF" '' Multimedia
  122.         AddListItem CHECKSTATES$, "OFF" '' Symbols
  123. '    NEXT i%
  124.     FOR i% = 1 TO 5 STEP 1
  125.         AddListItem STATUSTEXT$, ""
  126.     NEXT i%
  127.     FOR i% = 1 TO 7 STEP 1
  128.         AddListItem DRIVETEXT$, ""
  129.     NEXT i%
  130.     ReplaceListItem DRIVETEXT$, 7, DEST$
  131.  
  132.     ''Disk cost list symbols
  133.     APPNEEDS$   = "AppNeeds"
  134.     OPT1NEEDS$  = "Opt1Needs"
  135.     OPT2NEEDS$  = "Opt2Needs"
  136.     OPT3NEEDS$  = "Opt3Needs"
  137.     SYMNEEDS$   = "SymNeeds"
  138.     EXTRACOSTS$ = "ExtraCosts"
  139.     BIGLIST$    = "BigList"
  140.     FOR i% = 1 TO 5 STEP 1
  141.         AddListItem BIGLIST$, ""
  142.     NEXT i%
  143.     FOR i% = 1 TO 26 STEP 1
  144.         AddListItem EXTRACOSTS$, "0"
  145.     NEXT i%
  146.  
  147.     ''File Option Variables
  148.     OPT1OPT$ = "1"
  149.     OPT2OPT$ = "1"
  150.     OPT3OPT$ = "1"
  151.     SYMOPT$  = "1"
  152.  
  153.     SysDir$ = GetWindowsSysDir()
  154.     RecalcPath
  155. ''    i% = DoMsgBox("RecalcPath OK", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  156.     SetDriveStatus
  157. ''    i% = DoMsgBox("SetDriveStatus OK", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  158.  
  159.  
  160.     OPTCUR$ = "1"
  161. '    DEST$ = "C:\PIXFOLIO"
  162.  
  163. '$IFDEF DEBUG
  164.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  165.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  166.     IF IsDriveValid(WinDrive$) = 0 THEN
  167.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  168.     GOTO QUIT
  169.     END IF
  170. '$ENDIF ''DEBUG
  171.  
  172.  
  173. WELCOME:
  174.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  175.     IF sz$ = "CONTINUE" THEN
  176.     UIPop 1
  177.     ELSE
  178.     GOSUB ASKQUIT
  179.     GOTO WELCOME
  180.     END IF
  181.  
  182.  
  183. OPTION:
  184.     SetSymbolValue "RadioDefault", OPTCUR$
  185. OPTL1:
  186.     NOPT$="0"
  187.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  188.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  189.     ''i% = DoMsgBox("("+OPTCUR$+")", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  190.     IF OPTCUR$="1" THEN
  191.       NOPT$="0"
  192.       RecalcPath
  193.       SetDriveStatus
  194.     ELSE
  195.       NOPT$="1"
  196.       RecalcPath
  197.       SetDriveStatus
  198.     END IF
  199.  
  200.     IF sz$ = "CONTINUE" THEN
  201.     UIPop(1)
  202.     ELSEIF sz$ = "REACTIVATE" THEN
  203.     GOTO OPTL1
  204.     ELSE
  205.     GOSUB ASKQUIT
  206.     GOTO OPTION
  207.     END IF
  208.  
  209.  
  210. CUSTINST:
  211.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", CUSTHELP, HELPPROC$)
  212.  
  213.     IF sz$ = "CONTINUE" THEN
  214.         ''Install only if it will fit.
  215.         FOR i% = 1 TO 5 STEP 1
  216.             IF GetListItem(BIGLIST$, i%) <> "" THEN
  217.                 GOSUB TOOBIG
  218.                 GOTO CUSTINST
  219.             END IF
  220.         NEXT i%
  221.         UIPop 1
  222.         GOTO INSTALLIT
  223.     ELSEIF sz$ = "PATH" THEN
  224.         GOTO GETPATH
  225.     ELSEIF sz$ = "CHK1" THEN
  226.         IF DoesFileExist(MakePath(DEST$, "PIXFOLIO.EXE"), femReadWrite) = 0 AND GetListItem(CHECKSTATES$, APPFILES) = "OFF" THEN
  227.             GOSUB NOAPP
  228.             GOTO CUSTINST
  229.         END IF
  230.         RecalcOptFiles APPFILES
  231.         RecalcOptFiles SYMFILES
  232.         SetDriveStatus
  233.         GOTO CUSTINST
  234.     ELSEIF sz$ = "CHK2" THEN
  235.         RecalcOptFiles OPTFILES1
  236.         RecalcOptFiles SYMFILES
  237.         SetDriveStatus
  238.         GOTO CUSTINST
  239.     ELSEIF sz$ = "CHK3" THEN
  240.         IF GetListItem(CHECKSTATES$, OPTFILES2) = "ON" THEN
  241.             IF CheckForAVI = 0 THEN
  242.                 GOSUB NOAVI
  243.                 ReplaceListItem CHECKSTATES$, OPTFILES2, "OFF"  
  244.             END IF
  245.         END IF
  246.         RecalcOptFiles OPTFILES2
  247.         RecalcOptFiles SYMFILES
  248.         SetDriveStatus
  249.         GOTO CUSTINST
  250.     ELSEIF sz$ = "CHK4" THEN
  251.         RecalcOptFiles OPTFILES3
  252.         RecalcOptFiles SYMFILES
  253.         SetDriveStatus
  254.         GOTO CUSTINST
  255.     ELSEIF sz$ = "CHK5" THEN
  256.         RecalcOptFiles SYMFILES
  257.         SetDriveStatus
  258.         GOTO CUSTINST
  259.  
  260.     ELSEIF sz$ = "BTN2" THEN
  261.         GOTO OPTFILES1
  262.     ELSEIF sz$ = "BTN3" THEN
  263.         GOTO OPTFILES2
  264.     ELSEIF sz$ = "BTN4" THEN
  265.         GOTO OPTFILES3
  266.     ELSEIF sz$ = "BTN5" THEN
  267.         GOTO SYMFILES
  268.     ELSEIF sz$ = "REACTIVATE" THEN
  269.         RecalcPath
  270.         SetDriveStatus
  271.         GOTO CUSTINST
  272.     ELSE
  273.         GOTO OPTION
  274.         ''GOSUB ASKQUIT
  275.         ''GOTO CUSTINST
  276.     END IF
  277.  
  278.  
  279. GETPATH:
  280.     SetSymbolValue "EditTextIn", DEST$
  281.     SetSymbolValue "EditFocus", "END"
  282. GETPATHL1:
  283.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  284.  
  285.     IF sz$ = "CONTINUE" THEN
  286.         olddest$ = DEST$
  287.         DEST$ = GetSymbolValue("EditTextOut")
  288.  
  289.         ''Validate new path.
  290.         IF IsDirWritable(DEST$) = 0 THEN
  291.             GOSUB BADPATH
  292.             GOTO GETPATHL1
  293.         END IF
  294.         UIPop 1
  295.  
  296.         ''Truncate display if too long.
  297.         IF LEN(DEST$) > 23 THEN
  298.             ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  299.         ELSE
  300.             ReplaceListItem DRIVETEXT$, 7, DEST$
  301.         END IF
  302.  
  303.         ''Recalc if path changed.
  304.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  305.             RecalcPath
  306.             SetDriveStatus
  307.         END IF
  308.  
  309.         olddest$ = ""
  310.         GOTO CUSTINST
  311.     ELSEIF sz$ = "REACTIVATE" THEN
  312.         RecalcPath
  313.         SetDriveStatus
  314.         GOTO GETPATHL1
  315.     ELSEIF sz$ = "EXIT" THEN
  316.         GOSUB ASKQUIT
  317.         GOTO GETPATHL1
  318.     ELSE
  319.         UIPop 1
  320.         GOTO CUSTINST
  321.     END IF
  322.  
  323. INSTALLIT:
  324.     SetSymbolValue "SERIAL", "2X09AA001302"
  325.     SetSymbolValue "OWNER", "Aztech New Media Corp."
  326.     IF DoesFileExist(MakePath(DEST$, "PIXFOLIO.EXE"), femReadWrite) = 1 THEN
  327.         l& = GetStringTable(DEST$)
  328.         IF DoesFileExist(MakePath(DEST$, "PIXFOLIO.INI"), femReadWrite) = 1 THEN
  329.             ini$ = MakePath(DEST$, "PIXFOLIO.INI")
  330.         END IF
  331.     END IF
  332.     SERIAL$ = GetSymbolValue("SERIAL")
  333.     OWNER$  = GetSymbolValue("OWNER")
  334.     SERIAL1$ = GetIniKeyString(ini$, "PixFolio", "Registration Nbr")
  335.     OWNER1$ = GetIniKeyString(ini$, "PixFolio", "Registered To")
  336. '*    i% = DoMsgBox(SERIAL$+" "+SERIAL1, "Serial Number", MB_OK)
  337.  
  338.     IF ValidateReg(SERIAL1$) = 1 THEN
  339.         SERIAL$ = SERIAL1$
  340.         OWNER$ = OWNER1$
  341. '*        i% = DoMsgBox(SERIAL$+" "+SERIAL1, "Serial Number", MB_OK)
  342.     END IF
  343.     SetSymbolValue "SERIAL", SERIAL$
  344.     SetSymbolValue "OWNER", OWNER$
  345.  
  346.     Install
  347.  
  348.     IF(DoesFileExist(MakePath(DEST$, "PIXPCD.DLL"), femReadWrite) = 1 OR DoesFileExist(MakePath(DEST$, "PIXAVI.DLL"), femReadWrite) = 1) AND MID$(SERIAL$, 6, 1) <> "B" THEN
  349.         GOTO GETSERIAL
  350.     END IF
  351.  
  352.     IF ValidateReg(SERIAL$) = 1 THEN
  353.         GOTO UPDATEIT
  354.     END IF
  355.  
  356. GETSERIAL:
  357.     
  358.     sz$ = UIStartDlg(CUIDLL$, CDGETNAMEORG, "FNameOrgDlgProc", REGHELP, HELPPROC$)
  359.     DEST$ = GetSymbolValue("EditTextOut")
  360.  
  361.     IF sz$ = "CONTINUE" THEN
  362.         UIPop 1
  363.     ELSEIF sz$ = "CANCEL" THEN
  364.         UIPop 1
  365.     ELSE
  366.         GOSUB ASKQUIT
  367.         GOTO GETSERIAL
  368.     END IF
  369.  
  370.     SERIAL$ = GetSymbolValue("SERIAL")
  371.     OWNER$  = GetSymbolValue("OWNER")
  372.  
  373. UPDATEIT:
  374.     IF ValidateReg(SERIAL$) = 1 THEN
  375. '*        l& = PutStringTable(DEST$)
  376.         CreateIniKeyValue ini$, "PixFolio", "Registration Nbr", SERIAL$, cmoOverwrite
  377.         CreateIniKeyValue ini$, "PixFolio", "Registered To", OWNER$, cmoOverwrite
  378.     ELSE
  379.         CreateProgmanItem "PixFolio", "Register", "notepad.exe "+MakePath(DEST$,"PIXREGST.FRM"), "", cmoOverwrite
  380.     END IF
  381.  
  382. '*    Install
  383. QUITWIN:
  384.     ii% = RestartListEmpty()
  385.     IF ii% = 0 THEN
  386.         sz$ = UIStartDlg(CUIDLL$, QUITWIN, "FQuitWinDlgProc", 0, "")
  387.         IF sz$ = "CONTINUE" THEN
  388.             UIPop 1
  389.         ELSEIF sz$ = "REACTIVATE" THEN
  390.             GOTO QUITWIN
  391.         ELSE
  392.             GOSUB ASKQUIT
  393.             GOTO QUITWIN
  394.         END IF
  395.         ij% = ExitExecRestart()
  396.     END IF
  397.  
  398.  
  399. QUIT:
  400.     ON ERROR GOTO ERRQUIT
  401.  
  402.     IF ERR = 0 THEN
  403.         IF ValidateReg(SERIAL$) = 1 THEN
  404.             dlg% = EXITREGISTERED
  405.         ELSE
  406.             dlg% = EXITSUCCESS
  407.         END IF
  408.     ELSEIF ERR = STFQUIT THEN
  409.     dlg% = EXITQUIT
  410.     ELSE
  411.     dlg% = EXITFAILURE
  412.     END IF
  413. QUITL1:
  414.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  415.     IF sz$ = "REACTIVATE" THEN
  416.     GOTO QUITL1
  417.     END IF
  418.     UIPop 1
  419.  
  420.     END
  421.  
  422. ERRQUIT:
  423.     i% = DoMsgBox("Setup sources were corrupted, call (502) 955-7527!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  424.     END
  425.  
  426. OPTFILES1:
  427.     SetSymbolValue "RadioDefault", OPT1OPT$
  428. OPT1L1:
  429.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  430.     newopt$ = GetSymbolValue("ButtonChecked")
  431.  
  432.     IF sz$ = "CONTINUE" THEN
  433.         UIPop 1
  434.         IF newopt$ <> OPT1OPT$ THEN
  435.             OPT1OPT$ = newopt$
  436.             RecalcOptFiles OPTFILES1
  437.             SetDriveStatus
  438.         END IF
  439.         newopt$ = ""
  440.         GOTO CUSTINST
  441.     ELSEIF sz$ = "REACTIVATE" THEN
  442.         RecalcPath
  443.         SetDriveStatus
  444.         GOTO OPT1L1
  445.     ELSEIF sz$ = "EXIT" THEN
  446.         GOSUB ASKQUIT
  447.         GOTO OPT1L1
  448.     ELSE
  449.         UIPop 1
  450.         newopt$ = ""
  451.         GOTO CUSTINST
  452.     END IF
  453.  
  454.  
  455.  
  456. OPTFILES2:
  457.     SetSymbolValue "RadioDefault", OPT2OPT$
  458. OPT2L1:
  459.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  460.     newopt$ = GetSymbolValue("ButtonChecked")
  461.  
  462.     IF sz$ = "CONTINUE" THEN
  463.         UIPop 1
  464.         IF newopt$ <> OPT2OPT$ THEN
  465.             OPT2OPT$ = newopt$
  466.             RecalcOptFiles OPTFILES2
  467.             SetDriveStatus
  468.         END IF
  469.         newopt$ = ""
  470.         GOTO CUSTINST
  471.     ELSEIF sz$ = "REACTIVATE" THEN
  472.         RecalcPath
  473.         SetDriveStatus
  474.         GOTO OPT2L1
  475.     ELSEIF sz$ = "EXIT" THEN
  476.         GOSUB ASKQUIT
  477.         GOTO OPT2L1
  478.     ELSE
  479.         UIPop 1
  480.         newopt$ = ""
  481.         GOTO CUSTINST
  482.     END IF
  483.  
  484. OPTFILES3:
  485.     SetSymbolValue "RadioDefault", OPT3OPT$
  486. OPT3L1:
  487.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  488.     newopt$ = GetSymbolValue("ButtonChecked")
  489.  
  490.     IF sz$ = "CONTINUE" THEN
  491.         UIPop 1
  492.         IF newopt$ <> OPT3OPT$ THEN
  493.             OPT3OPT$ = newopt$
  494.             RecalcOptFiles OPTFILES3
  495.             SetDriveStatus
  496.         END IF
  497.         newopt$ = ""
  498.         GOTO CUSTINST
  499.     ELSEIF sz$ = "REACTIVATE" THEN
  500.         RecalcPath
  501.         SetDriveStatus
  502.         GOTO OPT3L1
  503.     ELSEIF sz$ = "EXIT" THEN
  504.         GOSUB ASKQUIT
  505.         GOTO OPT3L1
  506.     ELSE
  507.         UIPop 1
  508.         newopt$ = ""
  509.         GOTO CUSTINST
  510.     END IF
  511.  
  512. SYMFILES:
  513.     SetSymbolValue "RadioDefault", SYMOPT$
  514. OPTSL1:
  515.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  516.     newopt$ = GetSymbolValue("ButtonChecked")
  517.  
  518.     IF sz$ = "CONTINUE" THEN
  519.         UIPop 1
  520.         IF newopt$ <> SYMOPT$ THEN
  521.             SYMOPT$ = newopt$
  522.             RecalcOptFiles SYMFILES
  523.             SetDriveStatus
  524.         END IF
  525.         newopt$ = ""
  526.         GOTO CUSTINST
  527.     ELSEIF sz$ = "REACTIVATE" THEN
  528.         RecalcPath
  529.         SetDriveStatus
  530.         GOTO OPTSL1
  531.     ELSEIF sz$ = "EXIT" THEN
  532.         GOSUB ASKQUIT
  533.         GOTO OPTSL1
  534.     ELSE
  535.         UIPop 1
  536.         newopt$ = ""
  537.         GOTO CUSTINST
  538.     END IF
  539.  
  540.  
  541. TOOBIG:
  542.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  543.     IF sz$ = "REACTIVATE" THEN
  544.         RecalcPath
  545.         SetDriveStatus
  546.         GOTO TOOBIG
  547.     END IF
  548.     UIPop 1
  549.     RETURN
  550.  
  551. NOAVI:
  552.     sz$ = UIStartDlg(CUIDLL$, NOAVI, "FInfo0DlgProc", 0, "")
  553.     IF sz$ = "REACTIVATE" THEN
  554.         RecalcPath
  555.         SetDriveStatus
  556.         GOTO NOAVI
  557.     END IF
  558.     UIPop 1
  559.     RETURN
  560.  
  561. NOAPP:
  562.     sz$ = UIStartDlg(CUIDLL$, NOAPP, "FInfo0DlgProc", 0, "")
  563.     IF sz$ = "REACTIVATE" THEN
  564.         RecalcPath
  565.         SetDriveStatus
  566.         GOTO NOAPP
  567.     END IF
  568.     UIPop 1
  569.     RETURN
  570.  
  571.  
  572. BADPATH:
  573.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  574.     IF sz$ = "REACTIVATE" THEN
  575.     GOTO BADPATH
  576.     END IF
  577.     UIPop 1
  578.     RETURN
  579.  
  580.  
  581. ASKQUIT:
  582.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  583.  
  584.     IF sz$ = "EXIT" THEN
  585.     UIPopAll
  586.     ERROR STFQUIT
  587.     ELSEIF sz$ = "REACTIVATE" THEN
  588.     GOTO ASKQUIT
  589.     ELSE
  590.     UIPop 1
  591.     END IF
  592.     RETURN
  593.  
  594.  
  595.  
  596. '*************************************************************************
  597. SUB Install STATIC
  598.  
  599.     lTicks& = 20
  600.  
  601.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  602.     CreateDir DEST$, cmoNone
  603. '*    SysDir$ = GetWindowsSysDir()
  604.     ClearBillboardList
  605.     AddToBillboardList CUIDLL$, MODELESS, "FModelessDlgProc", lTicks&
  606.  
  607.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  608.     WriteToLogFile ""
  609.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  610.     WriteToLogFile ""
  611.     WriteToLogFile "May have had to create the directory: " + DEST$
  612.     WriteToLogFile ""
  613.  
  614.     SetRestartDir(szTempDir)
  615.  
  616.     ClearCopyList
  617.  
  618.     AddOptFilesToCopyList APPFILES
  619.     AddOptFilesToCopyList OPTFILES1
  620.     AddOptFilesToCopyList OPTFILES2
  621.     AddOptFilesToCopyList OPTFILES3
  622.     AddOptFilesToCopyList SYMFILES
  623.  
  624.     AddSectionFilesToCopyList "Remove List", SrcDir$, DEST$
  625.  
  626.  
  627.      IF NOPT$="0" THEN
  628.         WriteToLogFile "CD INSTALL "+SrcDir$
  629.         INPATH$=SrcDir$
  630.         writetologfile "Path Set -->"+INPATH$
  631.      ELSE
  632.     AddSectionFilesToCopyList "Catalogs", SrcDir$, DEST$
  633.     AddSectionFilesToCopyList "SV_II_"+MID$(SrcDir$,1,1), SrcDir$, DEST$
  634.         WriteToLogFile "HD INSTALL "+DEST$
  635.         INPATH$=DEST$
  636.         writetologfile "Path Set -->"+INPATH$
  637.      END IF
  638.  
  639.      '' Touch up path if needed
  640.      IF MID$(INPATH$, LEN(INPATH$), 1) <> "\" THEN
  641.        INPATH$ = INPATH$ + "\"
  642.      END IF
  643.  
  644.      cat99$ = INPATH$+"FAL_I_D.CAT"
  645.      cat98$ = INPATH$+"VR_I_D.CAT"
  646.      cat97$ = INPATH$+"WB_1TO3.CAT"
  647.      ''cat96$ = INPATH$+"WB_4TO6.CAT"
  648.      cat95$ = INPATH$+"DINO_I.CAT"
  649.      cat93$ = INPATH$+"GEM_I_D.CAT"
  650.      cat92$ = INPATH$+"AGB_I_D.CAT"
  651.      '' Break
  652.      cat70$ = INPATH$+"FAL_2_D.CAT"
  653.      cat69$ = INPATH$+"GEO_D.CAT"
  654.      cat68$ = INPATH$+"GIAW_D.CAT"
  655.      cat67$ = INPATH$+"WBEA_D.CAT"
  656.      cat66$ = INPATH$+"WBEC_D.CAT"
  657.      cat65$ = INPATH$+"SV_I_D.CAT"
  658.      cat64$ = INPATH$+"SV_II_"+MID$(SrcDir$,1,1)+".CAT"
  659.  
  660.      CopyFilesInCopyList
  661.  
  662.      cat$ = MakePath(DEST$, "PIXFOLIO.CAT")
  663.      vol$ = " "
  664.  
  665.      ''GetVolume SrcDir$, vol$
  666.      Ext$ = "*.GIF;*.BMP;*.TIF"
  667.      i% = DoesFileExist(cat$, femExists)
  668.      j% = DoesIniSectionExist("WIN.INI", "PixFolio")
  669.  
  670.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog1", "Default," + cat$ + "," + Ext$ +"," + vol$ + ",READONLY", cmoOverwrite
  671.  
  672.      IF i% = 1 And j% = 0 THEN
  673.        Flags% = cmoNone
  674.       ELSE
  675.        Flags% = cmoOverwrite
  676.      END IF
  677.  
  678.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog99", "Fashion Advertising&Lifestyles I,"   + cat99$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  679.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog98", "Visual Rythms,"                      + cat98$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  680.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog97", "WorldBank Volumes I to III,"         + cat97$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  681.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog95", "Jurassic Dinosaur,"                  + cat95$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  682.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog93", "Gems!,"                              + cat93$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  683.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog92", "Abstract & Graphic Backgrounds,"     + cat92$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  684.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog70", "Fashion Advertising&LifeStyles II,"  + cat70$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  685.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog69", "Geological Microphotography,"        + cat69$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  686.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog68", "Ghosted Images and WaterMarks,"      + cat68$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  687.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog67", "WB African Traditional Peoples,"     + cat67$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  688.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog66", "WB African Heritage,"                + cat66$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  689.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog65", "SpaceViews I,"                       + cat65$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  690.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalog64", "SpaceViews II,"                      + cat64$ + "," + Ext$ +"," + vol$ + ",READONLY", Flags%
  691.      CreateIniKeyValue "WIN.INI", "PixFolio", "Catalogs", "99", Flags%
  692.      CreateIniKeyValue "WIN.INI", "PixFolio", "DIB to Screen", "YES", Flags%
  693.  
  694.      IF DoesFileExist(MakePath(DEST$, "PIXPCD.DLL"), femReadWrite) = 1 THEN
  695.     CreateIniKeyValue "WIN.INI", "PixFolio", "PCD Resolution", "3", cmoNone
  696.     CreateIniKeyValue "WIN.INI", "PixFolio", "PCD Format", "2", cmoNone
  697.      END IF
  698.     CreateProgmanGroup "PixFolio", "", cmoNone
  699.     ShowProgmanGroup  "PixFolio", 1, cmoNone
  700.     CreateProgmanItem "PixFolio", "PixFolio", MakePath(DEST$,"PixFolio"), "", cmoOverwrite
  701.     CreateProgmanItem "PixFolio", "Read Me", "write.exe "+MakePath(DEST$,"PIXREAD.ME"), "", cmoOverwrite
  702.     CreateProgmanItem "PixFolio", "User Guide", "Write.exe "+MakePath(DEST$,"UsrGuide.wri"), "", cmoOverwrite
  703.     CreateProgmanItem "PixFolio", "Other Aztech Products", "notepad.exe "+MakePath(DEST$,"OTH_PROD.TXT"), "", cmoOverwrite
  704.     CreateProgmanItem "PixFolio", "License Agreement", "notepad.exe "+MakePath(DEST$,"LICENSE.TXT"), "", cmoOverwrite
  705.     CloseLogFile
  706.  
  707. END SUB
  708.  
  709.  
  710.  
  711. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  712.     IF szDir$ = "" THEN
  713.     MakePath = szFile$
  714.     ELSEIF szFile$ = "" THEN
  715.     MakePath = szDir$
  716.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  717.     MakePath = szDir$ + szFile$
  718.     ELSE
  719.     MakePath = szDir$ + "\" + szFile$
  720.     END IF
  721. END FUNCTION
  722.  
  723. SUB AddOptFilesToCopyList (ftype%) STATIC
  724.  
  725.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  726.         SrcDir$ = GetSymbolValue("STF_SRCDIR")
  727.         IF ftype% = APPFILES THEN
  728.             AddSectionFilesToCopyList "PixFolio Files", SrcDir$, DEST$
  729.             AddSectionFilesToCopyList "System Files", SrcDir$, SysDir$
  730.         ELSEIF ftype% = OPTFILES1 THEN
  731.             AddSectionFilesToCopyList "PCD Files", SrcDir$, DEST$
  732.         ELSEIF ftype% = OPTFILES2 THEN
  733.             AddSectionFilesToCopyList "VFW Files", SrcDir$, DEST$
  734.         ELSEIF ftype% = OPTFILES3 THEN
  735.             AddSectionFilesToCopyList "Multimedia Files", SrcDir$, DEST$
  736.         ELSEIF ftype% = SYMFILES THEN
  737. ''            i% = DoMsgBox("AddOptFiles" + STR$(ftype%), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  738.             IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
  739.                 AddSectionFilesToCopyList "PixFolio Symbols", SrcDir$, DEST$
  740.             END IF
  741.             IF GetListItem(CHECKSTATES$, OPTFILES1) = "ON" THEN
  742.                 AddSectionFilesToCopyList "PCD Symbols", SrcDir$, DEST$
  743.             END IF
  744.             IF GetListItem(CHECKSTATES$, OPTFILES2) = "ON" THEN
  745.                 AddSectionFilesToCopyList "VFW Symbols", SrcDir$, DEST$
  746.             END IF
  747.             IF GetListItem(CHECKSTATES$, OPTFILES3) = "ON" THEN
  748.                 AddSectionFilesToCopyList "Multimedia Symbols", SrcDir$, DEST$
  749.             END IF
  750.         END IF
  751.         SrcDir$ = ""
  752.     END IF
  753. END SUB
  754.  
  755. SUB RecalcOptFiles (ftype%) STATIC
  756.     CursorSave% = ShowWaitCursor()
  757.     ClearCopyList
  758.     AddOptFilesToCopyList ftype%
  759. ''    i% = DoMsgBox("Added files to copy list " + STR$(ftype%), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  760.     fExtra% = 0
  761.     IF ftype% = APPFILES THEN
  762.         ListSym$ = APPNEEDS$
  763.         IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
  764.             ''Add extra cost to Windows drive for ini/progman, etc.
  765.             ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  766.             ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
  767.             fExtra% = 1
  768.         END IF
  769.     ELSEIF ftype% = OPTFILES1 THEN
  770.         ListSym$ = OPT1NEEDS$
  771.     ELSEIF ftype% = OPTFILES2 THEN
  772.         ListSym$ = OPT2NEEDS$
  773.     ELSEIF ftype% = OPTFILES3 THEN
  774.         ListSym$ = OPT3NEEDS$
  775.     ELSEIF ftype% = SYMFILES THEN
  776.         ListSym$ = SYMNEEDS$
  777.     END IF
  778.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  779.  
  780.     cost& = 0
  781.     FOR i% = 1 TO 26 STEP 1
  782.         cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  783.     NEXT i%
  784.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  785.  
  786.     IF StillNeed& > 0 THEN
  787.         ReplaceListItem BIGLIST$, ftype%, "YES"
  788.     ELSE
  789.         ReplaceListItem BIGLIST$, ftype%, ""
  790.     END IF
  791.  
  792.     IF fExtra% THEN
  793.         ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  794.     END IF
  795.     RestoreCursor CursorSave%
  796.     ListSym$ = ""
  797. ''    i% = DoMsgBox("RecalcPath OK" + STR$(ftype%), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  798. END SUB
  799.  
  800.  
  801. SUB RecalcPath STATIC
  802.  
  803.     CursorSave% = ShowWaitCursor()
  804.  
  805.     RecalcOptFiles APPFILES
  806.     RecalcOptFiles OPTFILES1
  807.     RecalcOptFiles OPTFILES2
  808.     RecalcOptFiles OPTFILES3
  809.     RecalcOptFiles SYMFILES
  810.  
  811.     RestoreCursor CursorSave%
  812. END SUB
  813.  
  814.  
  815. SUB SetDriveStatus STATIC
  816.  
  817.     drive$ = MID$(DEST$, 1, 1)
  818.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  819.     cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(OPT1NEEDS$, ndrive%)) + VAL(GetListItem(OPT2NEEDS$, ndrive%)) + VAL(GetListItem(SYMNEEDS$, ndrive%))
  820.     free& = GetFreeSpaceForDrive(drive$)
  821. '* ==============================================================
  822. '*    Catalog File Size total
  823.  
  824.        IF NOPT$="1" THEN
  825.     COST&=COST&+48484000
  826.        END IF
  827. '* ==============================================================
  828.  
  829.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  830.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  831.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  832.  
  833.     IF drive$ = WINDRIVE$ THEN
  834.         ReplaceListItem DRIVETEXT$, 4, ""
  835.         ReplaceListItem DRIVETEXT$, 5, ""
  836.         ReplaceListItem DRIVETEXT$, 6, ""
  837.     ELSE
  838.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  839.         cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(OPT1NEEDS$, ndrive%)) + VAL(GetListItem(OPT2NEEDS$, ndrive%))
  840.         IF cost& = 0 THEN
  841.             ReplaceListItem DRIVETEXT$, 4, ""
  842.             ReplaceListItem DRIVETEXT$, 5, ""
  843.             ReplaceListItem DRIVETEXT$, 6, ""
  844.         ELSE
  845.             free& = GetFreeSpaceForDrive(WINDRIVE$)
  846.             ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  847.             ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  848.             ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  849.         END IF
  850.     END IF
  851. END SUB
  852.  
  853.